/*
    1.两种读取2方式：
    pcl::PointCloud<PointT>::Ptr cloud_ptr(new pcl::PointCloud<PointT>);
    pcl::io::loadPLYFile("/home/lin/Downloads/bathtub_0154.ply", *cloud_ptr);

    pcl::PointCloud<PointT>::Ptr cloud_ptr(new pcl::PointCloud<PointT>);
    pcl::PCDReader reader;
    reader.read("/home/lin/Downloads/cloud_bin_2.pcd ", *cloud_ptr);

    2. 两种显示方法：
            pcl::visualization::CloudViewer 简单
            与pcl::visualization::PCLVisualizer复杂
*/

#include <pcl/io/pcd_io.h>                      //PCD文件读取
#include <pcl/io/ply_io.h>
#include <pcl/visualization/cloud_viewer.h>

typedef pcl::PointXYZRGB PointT;

int main()
{  
    // ----------pcl::visualization::CloudViewer--------- 
    pcl::PointCloud<PointT>::Ptr cloud_ptr(new pcl::PointCloud<PointT>);
    // pcl::PLYReader reader;
    // reader.read("/home/lin/Downloads/frag_115.ply", *cloud_ptr);
    
    // pcl::io::loadPCDFile("/home/lin/Downloads/fragment.pcd", *cloud_ptr);
    pcl::io::loadPLYFile("../data/frag_115.ply", *cloud_ptr);
  
    pcl::visualization::CloudViewer viewer("Cloud Viewer");
    viewer.showCloud(cloud_ptr);
    while (!viewer.wasStopped())
    {

    }

   //----------pcl::visualization::PCLVisualizer--------------
    // pcl::PointCloud<PointT>::Ptr cloud_ptr(new pcl::PointCloud<PointT>);
    // pcl::PCDReader reader;
    // reader.read("/home/lin/Downloads/cloud_bin_2.pcd ", *cloud_ptr);

    // pcl::visualization::PCLVisualizer viewer("Test View");
    // viewer.setBackgroundColor(0., 0., 0.);
    // pcl::visualization::PointCloudColorHandlerRGBField<PointT> rgb(cloud_ptr);
    // viewer.addPointCloud(cloud_ptr, rgb, "sample cloud");
    // // 设置点云大小
    // viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 2, "sample cloud");
    // // 设置坐标轴长度
    // viewer.addCoordinateSystem(1, "sample cloud");
    // viewer.initCameraParameters();
    // viewer.spin();
    
   
    return 0;
}